'''
https://www.daniweb.com/programming/software-development/threads/71008/comparing-python-and-c-part-1-integer-variables
https://realpython.com/python-data-types/

数值型
 int整型、
 python2：
　　在32位机器上，整数的位数为32位，取值范围为-2**31～2**31-1；
　　在64位系统上，整数的位数为64位，取值范围为-2**63～2**63-1；
python3：
　　理论上长度是无限的（只要内存足够大）

 long长整型、
  存在，但是int够用，可以忽略
 float浮点数、
  理论上长度是无限的（只要内存足够大）

 complex复数、
   基本不会用到

 以及布尔值（0和非0）

布尔类型
 True False

字符串型
 string （是List的一种特殊形式）
 "abc"  逻辑意义上的['a','b','c']，并非物理层面
 完整的一段串 "" ''

 当不知道变量类型的时候可以使用type(变量)

 使用基本类型关键字互转

'''

f = 0.000000000000000000000000000000000000000000000000000000000001
print(f)

'''
python语言是弱类型的，类型动态可变的,在其他强类型语言（java、c++、golang、rust、scala）是不可随意变的
'''

'''
集合collections,有点想数学集合，分类

List（列表） 0或0个以上的基本类型的组合 [xx,yy,zz] 内部元素可变
  1.下标从0开始 [下标]
  2.切片[头:尾] 左闭右开 尾如果省略标示所有 
       1)可以使用负数标示从后倒推
       2)[::-1]逆转集合
  3.可以+组合
  4.切开的为子集
  
Tuple（元组）0或0个以上的基本类型的组合 (xx,yy,zz) 内部元素不可变

Dictionary（字典） 0或0个以上的(索引)key(通常字符串，也可以是基本类型)/value(值，基本类型)的组合 {} 可变
 1.读写操作都是通过key
 2.keys/values两个方法一次获取所有的索引、值
 3.key是无序的
 4.如果要绝对有序 OrderedDict(用到再说)
  oder_dic= OrderedDict()
  oder_dic['a']='A'
  
 Set (去重集合) 0或0个以上的基本类型的组合 {} 内部元素可变
  1.没有元素的重复 
  2.增加元素通过add方法
  3.不支持下标，只能通过循环（for）
  
  使用基本类型关键字互转
  字典dict只能转元组（k/v）
'''

# t = [(1, 'a'), (2, 'b')]
# t = ((1, 'a'), (2, 'b'))
t = [(1, 2), (2, '3')]
d = dict(t)
print(d)
